<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
</head>

<body>
    <pre>
    JavaScript 的构造函数中可以添加一些成员，
    可以在构造函数本身上添加 - 静态成员
    也可以在构造函数内部的 this 上添加。 -- 实例成员
    通过这两种方式添加的成员，就分别称为静态成员和实例成员。

    ★★★★★★
    
    静态成员(静态方法)：在构造函数本上添加的成员称为静态成员，只能由构造函数本身来访问
    实例成员(动态方法)：在构造函数内部创建的对象成员称为实例成员，也就是构造函数内部通过this添加的成员,只能由实例化的对象来访问
  </pre
    >

    <script>
      function Person(name) {
        this.name = name;
      }
      Person.age = 20;
      var p = new Person("Tom");
      console.log(p.name); // Tom
      console.log(Person.age); // 20

      // 挂载到构造函数本身的方法叫做静态成员--静态方法
      // 静态方法如果想被访问
      // 只能使用构造函数本身调用
      Person.sayHi = function () {
        console.log("Hello!");
      };
      Person.sayHi(); // hello
    </script>
  </body>
</html>